package com.plian.system.entity.im;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.plian.system.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * @description: 三、股权投资项目情况 四、固定资产投资项目情况
 * @author: gangan
 * @create: 2020-04-27 09:56
 */
@Data
@TableName("im_execution_project_situation")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ExecutionProjectSituation对象", description = "项目投资执行情况信息")
public class ExecutionProjectSituation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主表id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主表id")
    private Long effectiveInvestmentId;

    /**
     * 项目id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "项目id")
    private Long projectId;

    /**
     * 项目名称
     */
    @ApiModelProperty(value = "项目名称", required = true)
    private String projectName;

    /**
     * 项目性质
     */
    @ApiModelProperty(value = "类别", required = true)
    private String projectNatureId;

    /**
     * 全年计划
     */
    @TableField(value = "plan_total_investment", updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "全年计划", required = true)
    private BigDecimal planTotalInvestment;

    /**
     * 至上月底完成
     */
    @TableField(value = "last_complete_investment", updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "至上月底完成", required = true)
    private BigDecimal lastCompleteInvestment;

    /**
     * 本月完成投资
     */
    @TableField(value = "complete_investment", updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "本月完成投资", required = true)
    private BigDecimal completeInvestment;

    /**
     * 主要形象进度
     */
    @ApiModelProperty(value = "主要形象进度", required = true)
    private String mainProgress;

    /**
     * 存在的问题
     */
    @ApiModelProperty(value = "存在的问题", required = true)
    private String problem;

    /**
     * 项目类型 1股权 2固定资产
     */
    @ApiModelProperty(value = "项目类型 1股权 2固定资产")
    private Integer projectType;

    /**
     * 是否基金投资 1否2是
     */
    @ApiModelProperty(value = "是否基金投资 1否2是", required = true)
    private Integer isFund;

    /**
     * 是否重点项目 1否2是
     */
    @ApiModelProperty(value = "是否重点项目 1否2是", required = true)
    private Integer isMain;
}
